package br.com.gemepde.control;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import br.com.gemepde.domain.Modulo;

@ManagedBean
@SessionScoped
public class ModuloBean implements Serializable{
	
	
	private static final long serialVersionUID = 4559217760469145997L;
	
	private Modulo modulo = new Modulo();
	private List<Modulo> listaModulos = new ArrayList<Modulo>();
//	private String tituloDialog = "Adicionar";
//	private String botaoDialog = "Adicionar";
	
	public ModuloBean() {
//		listaModulos.clear();
//		modulo = new Modulo();
	}
	
	public String avancarModulos(){
		listaModulos.clear();
		modulo = new Modulo();
		return "cadastroModulos";
	}
	
	//METODOS **CADASTRO**
//	public void novoModulo(){
//		tituloDialog = "Adicionar";
//		botaoDialog = "Adicionar";
//		modulo = new Modulo();
//	}

	public void adicionarModulo(){
		if (!listaModulos.contains(modulo)){
			listaModulos.add(modulo);
		}
		modulo = new Modulo();

		ServletContext servlet = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
		servlet.setAttribute("listaModulos", listaModulos);
		
//		return "";
	}
	
	public void removerModulo(){
		HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		modulo = (Modulo) request.getAttribute("modulo");
		
		listaModulos.remove(modulo);
		
		ServletContext servlet = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
		servlet.setAttribute("listaModulos", listaModulos);
		
//		return "";
	}
	
	public void editarModulo(){
		HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		modulo = (Modulo) request.getAttribute("modulo");
//		return "";
	}

	public Modulo getModulo() {
		return modulo;
	}

	public void setModulo(Modulo modulo) {
		this.modulo = modulo;
	}

	public List<Modulo> getListaModulos() {
		return listaModulos;
	}

	public void setListaModulos(List<Modulo> listaModulos) {
		this.listaModulos = listaModulos;
	}
}
